﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using System.Data.SQLite;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace FileTranslator
{
    public interface IDbComponent : IDisposable
    {
        // 成功返回true, 失败返回false
        bool Connect();
        bool Disconnect();

        // 事务相关函数
        bool BeginTransaction();
        bool Commit();
        bool Rollback();

        //检查系统数据库是否存在
        bool DbExists(string dbFile);

        //根据fromTable中的内容更新desTable数据源
        //返回更新的记录条数，返回-1表示失败
        int CopyTo(DataTable fromTable, string desTable);

        //插入数据
        bool Insert(string sql);
        
        // 删除所有数据,成功返回1，否则返回0
        bool DeleteAll(string tableName);

        // 删除部分数据
        bool Delete(
            string tableName,
            string where = null);

        //查询数据表中所有记录并排序
        DataTable SelectAll(string tableName, string orderBy = "DESC");
        
        //依据sql语句查询数据表中记录
        DataTable Select(
            string what,  
            string tableName, 
            string where = null,
            string orderBy = null, 
            string groupBy = null,
            string having = null);
    }

}
